# -*- coding: utf-8 -*-
# ㊎ Time : 2021/4/10
# ㊍ Author : XMZ
# ㊌ File : urls.py
# ㊋
# ㊏
import os
import sys
import time

import pika

self_path = os.path.dirname(os.path.abspath(__file__))
father_path = os.path.dirname(self_path)
parent_path = os.path.dirname(father_path)
sys.path.append(self_path)
sys.path.append(father_path)
sys.path.append(parent_path)

"""
# 1. 获得与 RabbitMQ Server 的连接对象
# 2. 通过连接对象获得 Channel 对象, Channel 提供了与 RabbitMQ 打交道的操作
# 3. 创建用于存储消息的队列, 不存在则创建
# 4. 发送消息到指定的 RabbitMQ 队列中
# 5. 关闭和 RabbitMQ 代理的连接
"""
# 登录信息
hosts = "10.0.21.36"
name = "admin"
pwd = "123456"
# 获 取连接RabbitMQ的用户名和密码 对象
credential = pika.PlainCredentials(username=name, password=pwd)  # 连接对象
# 1. 获得与 RabbitMQ Server 的连接对象
connection = pika.BlockingConnection(
    pika.ConnectionParameters(
        host=hosts,
        credentials=credential,
        heartbeat=0,

    )
)

# # 2. 通过连接对象获得 Channel 对象, Channel 提供了与 RabbitMQ 打交道的操作
channel = connection.channel()
# # 3. 创建用于存储消息的队列, 不存在则创建
queue_name = "TEST_QUEUE"
# durable 队列持久化
channel.queue_declare(queue=queue_name, durable=True)
# # 4. 发送消息到指定的 RabbitMQ 队列中
for i in range(1):
    # time.sleep(0.1)
    channel.basic_publish(
        exchange="",
        routing_key=queue_name,
        body=f"你好，MQ: {queue_name}_{i}",
        # 设置消息持久化
        properties=pika.BasicProperties(delivery_mode=2)
    )

connection.close()
print("消息发送完毕")
